package Methodes;


/**
 * Classe permettant de créer un objet Solution qui contiendra toutes les informations qui nous 
 * interessent et solutions du problème.
 * @author ejouini
 *
 */
public class Solution {

	/** Solution renvoyée. */
	private double[][] meilleureSolution;
	
	/** Capacités max pour la centrale 1 (nucléaire) pour chaque jours. */
	private double[] maxCentrale1;
	
	/** Capacités max pour la centrale 2 (charbon) pour chaque jours. */
	private double[] maxCentrale2;
	
	/** Capacités max pour la centrale 3 (fioul) pour chaque jours. */
	private double[] maxCentrale3;
	
	/** Capacités max pour la centrale 4 (gaz) pour chaque jours. */
	private double[] maxCentrale4;
	
	/** Capacités max pour la centrale 5 (hydraulique) pour chaque jours. */
	private double[] maxCentrale5;
	
	/** Coût minimum de la résolution effectuée. */
	private double coutMinimum;
	
	/** Temps d'execution de la méthode utilisée. */
	private double tempExecution;
	
	/**
	 * Constructeur
	 * @param meilleureSolution
	 * @param maxCentrale1
	 * @param maxCentrale2
	 * @param maxCentrale3
	 * @param maxCentrale4
	 * @param maxCentrale5
	 * @param coutMinimum
	 * @param tempExecution
	 */
	public Solution(double[][] meilleureSolution, double[] maxCentrale1, double[] maxCentrale2, double[] maxCentrale3,double[] maxCentrale4,double[] maxCentrale5, double coutMinimum,double tempExecution){
		this.meilleureSolution = meilleureSolution;
		this.maxCentrale1 = maxCentrale1;
		this.maxCentrale2 = maxCentrale2;
		this.maxCentrale3 = maxCentrale3;
		this.maxCentrale4 = maxCentrale4;
		this.maxCentrale5 = maxCentrale5;
		this.coutMinimum = coutMinimum;
		this.tempExecution = tempExecution;
	}
	
	
	
	public double getProduction(int centrale, int jour){
		return meilleureSolution[centrale][jour];
	}
	
	public double getMaxCentrale1(int jour){
		return maxCentrale1[jour];
	}
	
	public double getMaxCentrale2(int jour){
		return maxCentrale2[jour];
	}
	public double getMaxCentrale3(int jour){
		return maxCentrale3[jour];
	}
	public double getMaxCentrale4(int jour){
		return maxCentrale4[jour];
	}
	public double getMaxCentrale5(int jour){
		return maxCentrale5[jour];
	}
	public double getCoutMinimum(){
		return coutMinimum;
	}
	public double getTempExecution(){
		return tempExecution;
	}
	
	
}
